package com.yida.gwj.basis.mapper;

import com.yida.gwj.basis.domain.GwjInitBusinessHouse;
import com.yida.gwj.basis.domain.dto.GwjInitBusinessHouseDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 业务房屋信息（基础数据管理模块）Mapper接口
 *
 * @author lqq
 * @date 2022-12-15
 */
public interface GwjInitBusinessHouseMapper {

	/**
	 * 查询业务信息
	 *
	 * @param businessHouse 业务房屋信息（基础数据管理模块）
	 * @return /
	 */
	List<GwjInitBusinessHouse> selectList(GwjInitBusinessHouse businessHouse);

	/**
	 * 查询业务业主信息（基础数据管理模块）列表
	 *
	 * @param buildCodes 房屋标识码
	 * @param bizId     业务ID
	 * @return 业务业主信息（基础数据管理模块）集合
	 */
	List<GwjInitBusinessHouse> selectListInCode(@Param("buildCodes") String[] buildCodes, @Param("bizId") Long bizId);

	/**
	 * 查询业务信息
	 *
	 * @param businessHouse 业务房屋信息（基础数据管理模块）
	 * @return /
	 */
	List<GwjInitBusinessHouseDTO> selectDtoList(GwjInitBusinessHouse businessHouse);

	/**
	 * 查询业务房屋信息（基础数据管理模块）
	 *
	 * @param bizHouseId 业务房屋信息（基础数据管理模块）主键
	 * @return 业务房屋信息（基础数据管理模块）
	 */
	GwjInitBusinessHouse selectById(Long bizHouseId);

	/**
	 * 新增业务房屋信息（基础数据管理模块）
	 *
	 * @param businessHouse 业务房屋信息（基础数据管理模块）
	 * @return 结果
	 */
	int insert(GwjInitBusinessHouse businessHouse);

	/**
	 * 新增业务房屋信息（基础数据管理模块）
	 *
	 * @param businessHouses 业务房屋信息（基础数据管理模块）
	 * @return 结果
	 */
	int insertBatch(@Param("businessHouses") List<GwjInitBusinessHouse> businessHouses);

	/**
	 * 修改业务房屋信息（基础数据管理模块）
	 *
	 * @param businessHouse 业务房屋信息（基础数据管理模块）
	 * @return 结果
	 */
	int updateById(GwjInitBusinessHouse businessHouse);

	/**
	 * 修改业务房屋信息（基础数据管理模块）
	 *
	 * @param businessHouses 业务房屋信息（基础数据管理模块）
	 * @return 结果
	 */
	int updateBatch(@Param("businessHouses") List<GwjInitBusinessHouse> businessHouses);

	/**
	 * 根据业务房屋ID删除业务房屋信息（基础数据管理模块）
	 *
	 * @param bizHouseId 业务房屋信息（基础数据管理模块）主键
	 * @return 结果
	 */
	int deleteById(Long bizHouseId);

	/**
	 * 根据业务ID删除业务房屋信息（基础数据管理模块）
	 *
	 * @param bizId 业务ID（基础数据管理模块）主键
	 * @return 结果
	 */
	int deleteByBizId(Long bizId);

	/**
	 * 根据楼栋标识码删除业务房屋信息（基础数据管理模块）
	 *
	 * @param buildCodes 楼栋标识码（基础数据管理模块）
	 * @param bizId     业务ID（基础数据管理模块）
	 * @return 结果
	 */
	int deleteByBuildCodesAndBizId(@Param("buildCodes") List<String> buildCodes, @Param("bizId") Long bizId);

	/**
	 * 批量删除业务房屋信息（基础数据管理模块）
	 *
	 * @param bizHouseIds 需要删除的数据主键集合
	 * @return 结果
	 */
	int deleteByIds(Long[] bizHouseIds);
}
